package cn.cxq.learning.tree;

/**
 * 链接：https://www.nowcoder.com/questionTerminal/435fb86331474282a3499955f0a41e8b?toCommentId=9142916
 * 来源：牛客网
 *
 * [编程题]二叉树的深度
 * 热度指数：330891时间限制：C/C++ 1秒，其他语言2秒空间限制：C/C++ 64M，其他语言128M
 * 算法知识视频讲解
 * 输入一棵二叉树，求该树的深度。从根结点到叶结点依次经过的结点（含根、叶结点）形成树的一条路径，最长路径的长度为树的深度。
 * 示例1
 * 输入
 * {1,2,3,4,5,#,6,#,#,7}
 * 输出
 * 4
 */
public class TreeDepth {

    public int TreeDepth(TreeNode root) {
        if (root == null) {
            return 0;
        }

        return treeDepth(root);
    }

    private int treeDepth(TreeNode treeNode) {

        if (treeNode == null) {
            return 0;
        }

        return Math.max(treeDepth(treeNode.left),treeDepth(treeNode.right)) + 1;
    }

}
